*****************************************************************************************
* ONLINE APPENDIX FIGURE A11
* 
* RUN ADDITIONAL REGRESSIONS TO EXPLORE THE EFFECT
* OF THE IMMIGRATION FROM VENEZUELA ON:
*
* 1) HOURS WORKED IN THE PRECEDING WEEK IN THE MAIN OCUPATION ->
* AS A WAY TO GET A SENSE OF THE EFFECT ON THE INTENSIVE MARGIN OF EMPLOYMENT
*
* 2) EFFECT ON INFORMALITY. THREE INDICATORS OF INFORMALITY:
*  2.1) INFORMALITY  AS LACK OF PENSION BENEFITS 
*  2.2) INFORMALITY  AS LACK OF HEALTH BENEFITS
*  2.3) INFORMALITY  AS LACK OF HEALTH OR PENSION BENEFITS
*
* LAST MODIFIED: JULY, 2025
*****************************************************************************************


clear all 

* INSTALL SCHEMES FOR GRAPHS
*ssc install blindschemes, replace all 
*ssc install schemepack, replace /*based on https://github.com/asjadnaqvi/Stata-schemes*/

**# DIRECTORIES

* PAPER DIRECTORY DROPBOX
global fiscal "/Users/andres/Library/CloudStorage/Dropbox/2 Papers/2023/Paper_Fiscal_Costs"

* SUBDIRECTORIES
global data "$fiscal/1 Data/12 Final Datasets"
global programs "$fiscal/2 Programs/2 Figures and Tables paper"
global results "$fiscal/3 Results"

**# LOAD DATASET AND CREATE NEW VARIABLES

* LOAD DATASET WITH VARIABLES NEEDED
use "$data/LaborEffects.dta", clear

**#SAMPLE SELECTION 

* ONLY METROPOLITAN AREAS 
drop if area >= 81 /* not observations for these areas*/
drop if area == 25 /* not observations */
keep if area !=. 

* DUMMIES FOR YEAR AND MSA
tab year, gen(year)
tab area, gen(area)

* KEEP ONLY WORKING-AGE POPULATION
drop if (age<15|age>64) 

* KEEP IF NOT ENROLLED IN SCHOOL
keep if att_school == 2 

* DELIMIT THE ANALYSIS FOR THE YEARS 2013-2018. 
drop if year > 2018

* DISPLAY FORMAT FOR SAMPLING WEIGHTS 
format %12.0f fex12

* GENERATE ROUNDED WEIGHTS FOR SPECIFIC COMMANDS THAT REQUIRE THEM 
gen fex12_round = fex12
replace fex12_round = round(fex12_round) 

**# GLOBAL MACROS FOR VARIABLES
global controls year2-year6 area2-area23 i.sex1 age c.age#c.age educ2-educ5
global x        mig_share2013
global z1       IV2005
global z2       IVdist
global w        fex12


* HANDLING OUTLIERS FOR WEEKLY WORKING HOURS
levelsof year, local(year)
foreach j of local year {
display "this is year `j'"
centile weekly_hours_lw if year == `j', cent(0.5 99.5)
return list 
local cent1 = r(c_1)
display `cent1'
local cent99 = r(c_2)
display `cent99'
* keep only de wage distribution between 1 and 99
drop if weekly_hours_lw  > `cent99'  
drop if weekly_hours_lw  < `cent1' 
}


**# ESTIMATION RESULTS

**# RESULTS 1: EFFECT OF THE IMMIGRATION FROM VENEZUELA ON HOURS WORKED PRECEDING WEEK MAIN OCCUPATION
*sample 5 , by(area year) 

matrix A = J(3,3,.) /* create matrix to save coefficients and confidence intervals*/
matrix colnames A = b ll ul  
matrix rownames A = OLS IV1 IV2 

**## OLS
ivreg2 weekly_hours_lw $x $controls if emp == 1 & area != . & immig == 0 [pw=$w], cluster(area) partial(area2-area23) small 
matrix A[1,1] = _b[$x]
matrix A[1,2] = _b[$x] - invttail(e(df_r),0.025)*_se[$x]
matrix A[1,3] = _b[$x] + invttail(e(df_r),0.025)*_se[$x]

**## IV1:
ivreg2 weekly_hours_lw ($x = $z1) $controls if emp == 1 & area != . & immig == 0  [pw=$w], first cluster(area) partial(area2-area23) small 
matrix A[2,1] = _b[$x]
matrix A[2,2] = _b[$x ] - invttail(e(df_r),0.025)*_se[$x]
matrix A[2,3] = _b[$x ] + invttail(e(df_r),0.025)*_se[$x]

**## IV2
ivreg2 weekly_hours_lw ($x = $z2) $controls  if emp == 1 & area != . & immig == 0 [pw=$w], first cluster(area)  partial(area2-area23) small
matrix A[3,1] = _b[$x]
matrix A[3,2] = _b[$x] - invttail(e(df_r),0.025)*_se[$x]
matrix A[3,3] = _b[$x] + invttail(e(df_r),0.025)*_se[$x]


**# RESULTS 2: EFFECT OF THE IMMIGRATION FROM VENEZUELA ON 
* NATIVES' INFORMALITY STATUS -> INFORMALES 3 -> LACK OF PENSION BENEFITS

matrix B = J(3,3,.)
matrix colnames B = b ll ul 
matrix rownames B = OLS IV1 IV2 

**## OLS
ivreg2 informal_pension $x $controls if emp == 1 & area != . & immig == 0 [pw=$w], cluster(area)  partial(area2-area23) small
matrix B[1,1] = _b[$x]
matrix B[1,2] = _b[$x] - invttail(e(df_r),0.025)*_se[$x]
matrix B[1,3] = _b[$x] + invttail(e(df_r),0.025)*_se[$x]

**## IV 1:
ivreg2 informal_pension ($x = $z1) $controls if emp == 1 & area != . & immig == 0  [pw=$w], first cluster(area)  partial(area2-area23) small
matrix B[2,1] = _b[$x]
matrix B[2,2] = _b[$x ] - invttail(e(df_r),0.025)*_se[$x]
matrix B[2,3] = _b[$x ] + invttail(e(df_r),0.025)*_se[$x]

**## IV 2:
ivreg2 informal_pension ($x = $z2) $controls  if emp == 1 & area != . & immig == 0 [pw=$w], first cluster(area)  partial(area2-area23) small
matrix B[3,1] = _b[$x]
matrix B[3,2] = _b[$x ] - invttail(e(df_r),0.025)*_se[$x]
matrix B[3,3] = _b[$x ] + invttail(e(df_r),0.025)*_se[$x]

**# RESULTS 3: EFFECT OF THE IMMIGRATION FROM VENEZUELA ON 
* NATIVES' INFORMALITY STATUS -> INFORMALES 4 -> LACK OF HEALTH BENEFITS

matrix C = J(3,3,.)
matrix colnames C = b ll ul 
matrix rownames C = OLS IV1 IV2 

**## OLS
ivreg2  informal_health $x $controls if emp == 1 & area != . & immig == 0 [pw=$w], cluster(area)  partial(area2-area23) small
matrix C[1,1] = _b[$x]
matrix C[1,2] = _b[$x] - invttail(e(df_r),0.025)*_se[$x]
matrix C[1,3] = _b[$x] + invttail(e(df_r),0.025)*_se[$x]

**## IV 1:
ivreg2  informal_health ($x = $z1) $controls if emp == 1 & area != . & immig == 0  [pw=$w], first cluster(area)  partial(area2-area23) small
matrix C[2,1] = _b[$x]
matrix C[2,2] = _b[$x ] - invttail(e(df_r),0.025)*_se[$x]
matrix C[2,3] = _b[$x ] + invttail(e(df_r),0.025)*_se[$x]

**## IV 2:
ivreg2  informal_health ($x = $z2) $controls  if emp == 1 & area != . & immig == 0 [pw=$w], first cluster(area) partial(area2-area23) small
matrix C[3,1] = _b[$x]
matrix C[3,2] = _b[$x ] - invttail(e(df_r),0.025)*_se[$x]
matrix C[3,3] = _b[$x ] + invttail(e(df_r),0.025)*_se[$x]

**# RESULTS 4: EFFECT OF THE IMMIGRATION FROM VENEZUELA ON 
* NATIVES' INFORMALITY STATUS -> INFORMALES 5 -> LACK OF HEALTH OR PENSION BENEFITS

matrix D = J(3,3,.)
matrix colnames D = b ll ul 
matrix rownames D = OLS IV1 IV2 

**## OLS
ivreg2  informal3  $x $controls if emp == 1 & area != . & immig == 0 [pw=$w], cluster(area)  partial(area2-area23) small
matrix D[1,1] = _b[$x]
matrix D[1,2] = _b[$x] - invttail(e(df_r),0.025)*_se[$x]
matrix D[1,3] = _b[$x] + invttail(e(df_r),0.025)*_se[$x]

**## IV 1:
ivreg2  informal3  ($x = $z1) $controls if emp == 1 & area != . & immig == 0  [pw=$w], first cluster(area)  partial(area2-area23) small
matrix D[2,1] = _b[$x]
matrix D[2,2] = _b[$x ] - invttail(e(df_r),0.025)*_se[$x]
matrix D[2,3] = _b[$x ] + invttail(e(df_r),0.025)*_se[$x]

**## IV 2:
ivreg2  informal3 ($x = $z2) $controls if emp == 1 & area != . & immig == 0 [pw=$w], first cluster(area) partial(area2-area23) small
matrix D[3,1] = _b[$x]
matrix D[3,2] = _b[$x ] - invttail(e(df_r),0.025)*_se[$x]
matrix D[3,3] = _b[$x ] + invttail(e(df_r),0.025)*_se[$x]


**# PLOTTING COEFFICIENTS 

**## HOURS WORKED

* T-BASED CIs 
coefplot (matrix(A[,1]), ci((A[,2] A[,3])) ///
ciopts(recast(rcap))), ///
yline(0) vertical ///
coeflabel(1 r1 = "OLS" ///
		  2 r2 = "IV: enclave" ///
		  3 r3 = "IV: distance" , labsize(small)) ///
ytitle("Effect on hours worked", size(medsmall))  ///
graphregion(color(white)) scheme(plottig) ///
title("A. Hours worked", size(medium))
tempfile results1
graph save "`results1'"


**## INFORMALITY LACK OF HEALTH OR PENSION	

* T-BASED CIs 	
coefplot (matrix(D[,1]), ci((D[,2] D[,3])) ///
ciopts(recast(rcap))), ///
yline(0) vertical ///
coeflabel(1 r1 = "OLS" ///
		  2 r2 = "IV: enclave" ///
		  3 r3 = "IV: distance" , labsize(small)) ///
ytitle("Effect on P(Informality = 1)", size(medsmall)) ///
graphregion(color(white)) scheme(plottig) ///
title("B. Informality", size(medium))
tempfile results2
graph save "`results2'"


**## INFORMALITY LACK HEALTH

* T-BASED CIs 	
coefplot (matrix(C[,1]), ci((C[,2] C[,3])) ///
ciopts(recast(rcap))), ///
yline(0) vertical ///
coeflabel(1 r1 = "OLS" ///
		  2 r2 = "IV: enclave" ///
		  3 r3 = "IV: distance" , labsize(small)) ///
ytitle("Effect on P(Informality Health = 1)", size(medsmall))  ///
graphregion(color(white)) scheme(plottig) ///
title("C. Informality health", size(medium))
tempfile results3
graph save "`results3'"	

	
**## INFORMALITY LACK PENSION 

* T-BASED CIs 	
coefplot (matrix(B[,1]), ci((B[,2] B[,3])) ///
ciopts(recast(rcap))), ///
yline(0) vertical ///
coeflabel(1 r1 = "OLS" ///
		  2 r2 = "IV: enclave" ///
		  3 r3 = "IV: distance" , labsize(small)) ///
ytitle("Effect on P(Informality Pension = 1)", size(medsmall)) ///  
graphregion(color(white)) scheme(plottig) ///
title("D. Informality pension", size(medium))
tempfile results4
graph save "`results4'"			 

		 
**# FIGURE A11 ONLINE APPENDIX
graph combine "`results1'" "`results2'" "`results3'" "`results4'" ///
, graphregion(color(white)) cols(2) rows(2) xcommon  iscale(0.72) scheme(plottig) 
qui graph save "$results/1 Figures Paper/FigA11_1.gph", replace 
qui graph export "$results/1 Figures Paper/FigA11_1.eps", as(eps) replace		 






